package com.joker.orange.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.joker.common.annotation.ExcelDictFormat;
import com.joker.common.convert.ExcelDictConvert;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 代理信息视图对象 sys_user
 *
 * @author Joker
 * @date 2024-08-04
 */
@Data
@ExcelIgnoreUnannotated
public class AgentUserVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    @ExcelProperty(value = "用户ID")
    private Long userId;

    /**
     * 部门ID
     */
    @ExcelProperty(value = "部门ID")
    private Long deptId;

    /**
     * 用户账号
     */
    @ExcelProperty(value = "用户账号")
    private String userName;

    /**
     * 用户昵称
     */
    @ExcelProperty(value = "用户昵称")
    private String nickName;

    /**
     * 用户类型（sys_user-系统用户、app_user-App用户）
     */
    @ExcelProperty(value = "用户类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "s=ys_user-系统用户、app_user-App用户")
    private String userType;

    /**
     * 用户邮箱
     */
    @ExcelProperty(value = "用户邮箱")
    private String email;

    /**
     * 手机号码
     */
    @ExcelProperty(value = "手机号码")
    private String phone;

    /**
     * 用户性别（0男 1女 2未知）
     */
    @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=男,1=女,2=未知")
    private String sex;

    /**
     * 头像地址
     */
    @ExcelProperty(value = "头像地址")
    private String avatar;

    /**
     * 代理等级
     */
    @ExcelProperty(value = "代理等级")
    private String agentLevel;

    /**
     * 上级代理
     */
    private String superiorAgent;
    @ExcelProperty(value = "上级代理名称")
    private String superiorAgentName;

    /**
     * 扣注册量权限（0-开、1-关）
     */
    @ExcelProperty(value = "扣注册量权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=-开、1-关")
    private String registrationDeductionPermission;

    /**
     * 扣单权限（0-开、1-关）
     */
    @ExcelProperty(value = "扣单权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=-开、1-关")
    private String orderDeductionPermission;

    /**
     * 分佣比例
     */
    @ExcelProperty(value = "分佣比例")
    private BigDecimal commissionRatio;

    /**
     * 安卓注册单价
     */
    @ExcelProperty(value = "安卓注册单价")
    private BigDecimal androidRegistrationPrice;

    /**
     * iOS注册单价
     */
    @ExcelProperty(value = "iOS注册单价")
    private BigDecimal iosRegistrationPrice;

    /**
     * 提现二维码
     */
    @ExcelProperty(value = "提现二维码")
    private String withdrawCode;

    /**
     * 余额
     */
    @ExcelProperty(value = "余额")
    private BigDecimal balance;

    /**
     * 登陆密码
     */
    @ExcelProperty(value = "登陆密码")
    private String password;

    /**
     * 提现密码
     */
    @ExcelProperty(value = "提现密码")
    private String withdrawPassword;

    /**
     * 是否代理（0-是、1-否）
     */
    @ExcelProperty(value = "是否代理", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=-是、1-否")
    private String isAgent;

    /**
     * 邀请码
     */
    @ExcelProperty(value = "邀请码")
    private String inviteCode;

    /**
     * 帐号状态（0正常 1停用）
     */
    @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 最后登录IP
     */
    @ExcelProperty(value = "最后登录IP")
    private String loginIp;

    /**
     * 最后登录时间
     */
    @ExcelProperty(value = "最后登录时间")
    private Date loginDate;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


}
